<?php

/*
    realizzazione del customtype spesa

    questo va incluso nel file plugin che utilizza il post type
 */

// fissa gli hook
function wpf_spesa_hooks()
{
	// creo il plugin ed i relativi menu
	register_activation_hook(__FILE__, 'wpf_spesa_rewrite_flush'); // serve per i permalink
	add_action('init', 'wpf_spesa_init'); // quando inizializzo la pagina
	add_action('init', 'wpf_spesa_add_boxes'); // quando inizializzo la pagina
	
	add_action('edit_form_advanced', 'wpf_spesa_tabelle'); // in questo modo le tabelle vengono nel post

// 	add_filter('wpf_progetto_available_statuses', 'wpf_filter_status');
}

// inizializza quello che serve
function wpf_spesa_init()
{
	// creazione del posttype
	//@ATTENTION modificare le varie descrizioni
	$labels = array(
		'name' => __('Spese', WPF_DOMAIN),
		'singular_name' => __('Spesa', WPF_DOMAIN),
		'add_new' => _x('Aggiungi nuova', WPF_DOMAIN),
		'add_new_item' => __('Nuova spesa'),
		'edit_item' => __('Modifica spesa'),
		'new_item' => __('Nuova spesa'),
		'all_items' => __('Tutte le spese'),
		'view_item' => __('Visualizza questa spesa'),
		'search_items' => __('Cerca una spesa'),
		'not_found' => __('Nessuna spesa trovata'),
		'not_found_in_trash' => __('Non ci sono spese nel cestino'),
		'parent_item_colon' => '',
		'menu_name' => 'Spese'
	);

	$args = array(
		'labels' => $labels,
		'public' => true,
		'publicly_queryable' => true,
		'show_ui' => true,
		'show_in_menu' => 'edit.php?post_type=wpf_corso',
		'query_var' => true,
		'rewrite' => array(
			'slug' => 'spesa'
		),
		'capability_type' => array(
			'spesa', 'spese'
		),
		'map_meta_cap' => true,
		'has_archive' => true,
		'hierarchical' => true,
		'menu_position' => null,
		'supports' => array(
			'title', 'excerpt'
		)
	);

	register_post_type('wpf_spesa', $args);
}

function wpf_spesa_add_boxes()
{
 	//add_meta_box('Dati di spesa', 'Dati di spesa', 'wpf_spesa_dati_box', 'wpf_spesa', 'advanced', 'core', '');
	$form_fields = array(
    		'importo' => array(
            		'type' => 'smalltext',
                	'description' => 'Importo',
                	'howto' => 'Inserire qui l\'importo della spesa'
           	),
           	'note' => array(
            	    'type' => 'text',
                	'description' => 'Note',
                	'howto' => 'Inserire qui le annotazioni per la spesa'
           	)
    );

    register_post_box('wpf_spesa', 'dettagli_spesa', 'Dettagli', 'advanced', 'high', $form_fields);
    register_post_parentbox('wpf_spesa', 'Corso', wpf_get_query('corsi_pubblicati'), __("Corso", WPF_DOMAIN ));
}

function wpf_spesa_tabelle()
{
	global $post;
    
    if ('wpf_spesa' !== $post->post_type)
	{
		return;
	}
	
	wpf_spesa_schede_spesa_box();
	wpf_spesa_assegnazioni_box();
}

function wpf_spesa_schede_spesa_box()
{
	global $post;

    $query= wpf_get_query('schedespesa_spesa',$post->ID);
    $columns = array(
        'title' => 'Scheda',
        'status' => 'Stato',
        'tipologia' => 'tipologia'
    );
    $options = array(
        'singular' => 'Scheda',
        'plural' => 'Schede',
        'actions' => array('edit' => 'Edit', 'unlink' => 'Unlink'),
    );
    admin_table_posts($options, $columns, $query );
    $schede_nonassociate_list = query_posts(wpf_get_query('schedespesa_nonassociate'));
    $schede_nonassociate = '<option></option>';
    foreach ($schede_nonassociate_list as $id => $schede) $schede_nonassociate .= '<option value="'.$schede->ID.'">'.$schede->post_title.'</option>';
    echo '<select id="associa_scheda" name="associa_scheda">'.$schede_nonassociate.'</select>';
    echo '<input type="submit" name="associa" id="associa-scheda" value="Associa"  class="button"/>';
    echo '<a href="post-new.php?post_type='.'wpf_scheda_spesa'.'&parent='.$post->ID.'" class="button">'._('Aggiungi nuovo').'</a>';
}

function wpf_spesa_assegnazioni_box()
{
	global $post;

	$query = wpf_get_query('assegnazioni_spesa', $post->ID);
	$columns = array(
			'title' => 'Assegnazione',
			'status' => 'Stato'
	);
	$options = array(
			'singular' => 'Assegnazione',
			'plural' => 'Assegnazioni',
			'ajax' => false,
			'actions' => array('edit' => 'Edit', 'unlink' => 'Unlink'),
			'comment' => 'code'
	);
	admin_table_posts($options, $columns, $query );
	$assegnazioni_nonassociate_list = query_posts(wpf_get_query('assegnazioni_nonassociate'));
	$assegnazioni_nonassociate = '<option></option>';
	foreach ($assegnazioni_nonassociate_list as $id => $assegnazione)
	{
		$assegnazioni_nonassociate .= '<option value="' . $assegnazione->ID . '">' . $assegnazione->post_title . '</option>';
	}
	echo '<select id="associa_assegnazione" name="associa_assegnazione">' . $assegnazioni_nonassociate . '</select>';
	//echo '<input type="submit" name="associa" id="associa-assegnazione" value="Associa"  class="button"/>';
	echo '<a href="post-new.php?post_type=wpf_assegnazione&parent=' . $post->ID . '" class="button">' . _('Aggiungi nuovo') . '</a>';
}

function wpf_spesa_dati_box()
{
	global $post;
	global $wpf_domain;

	// Use nonce for verification
	wp_nonce_field( plugin_basename( __FILE__ ), 'wpf_spesa_noncename' );

	admin_field('data_prevista', ($readonly ? 'readonly' : 'date'), 'Data prevista', get_post_meta($post->ID, 'data_prevista', true), $wpf_domain,'Inserisci qui la data prevista per la spesa.');
	admin_field('data_effettiva', ($readonly ? 'readonly' : 'date'), 'Data effettiva', get_post_meta($post->ID, 'data_effettiva', true), $wpf_domain,'Inserisci qui la data effettiva per la spesa.');
	admin_field('importo', ($readonly ? 'readonly' : 'littlenumber'), 'Importo', get_post_meta($post->ID, 'importo', true), $wpf_domain, 'Inserisci qui l\'importo della spesa.');
	admin_field('scheda_spesa', ($readonly ? 'readonly' : 'select'), 'Scheda spesa|spesa 1,spesa2,spesa3,', get_post_meta($post->ID, 'scheda_spesa', true), $wpf_domain, 'Seleziona la scheda spesa.');
	admin_field('assegnazione', ($readonly ? 'readonly' : 'select'), 'Assegnazione|assegnazione 1,assegnazione 2,assegnazione 3,', get_post_meta($post->ID, 'assegnazione', true), $wpf_domain, 'Seleziona l\'assegnazione.');
	admin_field('macrovoce', ($readonly ? 'readonly' : 'select'), 'Macrovoce|macrovoce 1,macrovoce 2,macrovoce 3,', get_post_meta($post->ID, 'macrovoce', true), $wpf_domain, 'Seleziona la macrovoce.');
	admin_field('descrizione', ($readonly ? 'readonly' : 'longtext'), 'Descrizione', get_post_meta($post->ID, 'descrizione', true), $wpf_domain, 'Inserisci qui una descrizione.');
	admin_field('nota', ($readonly ? 'readonly' : 'longtext'), 'Nota', get_post_meta($post->ID, 'nota', true), $wpf_domain, 'Inserisci qui una nota.');
}

 


// serve per gestire i permalink
function wpf_spesa_rewrite_flush()
{
	wpf_spesa_init();
	flush_rewrite_rules();
}


wpf_spesa_hooks();

?>
